import psutil

from src.model.cpu_info import CpuInfo
from src.model.disk_info import DiskInfo
from src.model.memory_info import MemoryInfo
from src.multi_platform.hardware_info_interface import HardwareInfoInterface


class HardwareInfoWindowsImpl(HardwareInfoInterface):

    def get_cpu_info(self) -> CpuInfo:
        info = CpuInfo()
        info.physical_core_count = psutil.cpu_count(logical=False)
        info.logic_core_count = psutil.cpu_count(logical=True)
        cpu_freq = psutil.cpu_freq()
        info.min_frequency = cpu_freq.min
        info.max_frequency = cpu_freq.max
        info.current_frequency = cpu_freq.current
        return info

    def get_memory_info(self) -> MemoryInfo:
        pass

    def get_disk_infos(self) -> list[DiskInfo]:
        pass